// import XLSX from 'xlsx';


// export function exportExcel(_headers, _data, fileName = 'output.xlsx') {
//     var headers = _headers
//         .map((v, i) => Object.assign({}, { k: v.k, v: v.v, position: String.fromCharCode(65 + i) + 1 }))
//         .reduce((prev, next) => Object.assign({}, prev, { [next.position]: { k: next.k, v: next.v } }), {});

//     var data = _data
//         .map((v, i) => _headers.map((k, j) => Object.assign({}, { v: v[k.k], position: String.fromCharCode(65 + j) + (i + 2) })))
//         // 对刚才的结果进行降维处理（二维数组变成一维数组）
//         .reduce((prev, next) => prev.concat(next))
//         // 转换成 worksheet 需要的结构
//         .reduce((prev, next) => Object.assign({}, prev, { [next.position]: { v: next.v } }), {});

//     // 合并 headers 和 data
//     var output = Object.assign({}, headers, data);
//     // 获取所有单元格的位置
//     var outputPos = Object.keys(output);
//     // 计算出范围
//     var ref = outputPos[0] + ':' + outputPos[outputPos.length - 1];

//     // 构建 workbook 对象
//     var wb = {
//         SheetNames: ['mySheet'],
//         Sheets: {
//             'mySheet': Object.assign({}, output, { '!ref': ref }),
//         },
//     };

//     // 导出 Excel
//     XLSX.writeFile(wb, fileName);
// }


'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.exportExcel = exportExcel;

var _xlsx = require('xlsx');

var _xlsx2 = _interopRequireDefault(_xlsx);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function exportExcel(_headers, _data) {
    var fileName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'output.xlsx';

    var headers = _headers.map(function (v, i) {
        return Object.assign({}, { k: v.k, v: v.v, position: String.fromCharCode(65 + i) + 1 });
    }).reduce(function (prev, next) {
        return Object.assign({}, prev, _defineProperty({}, next.position, { k: next.k, v: next.v }));
    }, {});

    var data = _data.map(function (v, i) {
        return _headers.map(function (k, j) {
            return Object.assign({}, { v: v[k.k], position: String.fromCharCode(65 + j) + (i + 2) });
        });
    })
    // 对刚才的结果进行降维处理（二维数组变成一维数组）
    .reduce(function (prev, next) {
        return prev.concat(next);
    })
    // 转换成 worksheet 需要的结构
    .reduce(function (prev, next) {
        return Object.assign({}, prev, _defineProperty({}, next.position, { v: next.v }));
    }, {});

    // 合并 headers 和 data
    var output = Object.assign({}, headers, data);
    // 获取所有单元格的位置
    var outputPos = Object.keys(output);
    // 计算出范围
    var ref = outputPos[0] + ':' + outputPos[outputPos.length - 1];

    // 构建 workbook 对象
    var wb = {
        SheetNames: ['mySheet'],
        Sheets: {
            'mySheet': Object.assign({}, output, { '!ref': ref })
        }
    };

    // 导出 Excel
    _xlsx2.default.writeFile(wb, fileName);
}